#pragma once
#include "orientation.h"
#include "Treasure.h"
namespace Model{
	class Tile
{
private:
	/*
	* When the tile has orientation midi ( midday) then
	exit 1 = north
	exit 2 = East
	exit 3 = South
	exit 4 = West
	if orientation = quart ( quarter) then 
	exit 1 = East
	exit 2 = South
	exit 3 = West
	exit 4 = North 
	And so on.
	*/
	Orientation ori;
	bool exit1,exit2,exit3,exit4;
	Tile *neighbor1,*neighbor2,*neighbor3,*neighbor4;
	Treasure* myTreasure;
public:
	virtual bool canGoUp();
	virtual bool canGoDown();
	virtual bool canGoLeft();
	virtual bool canGoRight();
	virtual Treasure getTreasure();
	virtual Tile* clone();
	virtual Tile* neighborUp();
	virtual Tile* neighborDown();
	virtual Tile* neighborLeft();
	virtual Tile* neighborRight();
	Tile(bool exit1,bool exit2,bool exit3,bool exit4,Orientation ori=midday);
	Tile(Treasure* tr,bool exit1,bool exit2,bool exit3,bool exit4,Orientation ori=midday);
	~Tile(void);
};
}